package com.cx.pojo;

import com.cx.common.BaseEntity;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;

public class EngineExample extends BaseEntity {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public EngineExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andEIdIsNull() {
            addCriterion("e_id is null");
            return (Criteria) this;
        }

        public Criteria andEIdIsNotNull() {
            addCriterion("e_id is not null");
            return (Criteria) this;
        }

        public Criteria andEIdEqualTo(Integer value) {
            addCriterion("e_id =", value, "eId");
            return (Criteria) this;
        }

        public Criteria andEIdNotEqualTo(Integer value) {
            addCriterion("e_id <>", value, "eId");
            return (Criteria) this;
        }

        public Criteria andEIdGreaterThan(Integer value) {
            addCriterion("e_id >", value, "eId");
            return (Criteria) this;
        }

        public Criteria andEIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("e_id >=", value, "eId");
            return (Criteria) this;
        }

        public Criteria andEIdLessThan(Integer value) {
            addCriterion("e_id <", value, "eId");
            return (Criteria) this;
        }

        public Criteria andEIdLessThanOrEqualTo(Integer value) {
            addCriterion("e_id <=", value, "eId");
            return (Criteria) this;
        }

        public Criteria andEIdIn(List<Integer> values) {
            addCriterion("e_id in", values, "eId");
            return (Criteria) this;
        }

        public Criteria andEIdNotIn(List<Integer> values) {
            addCriterion("e_id not in", values, "eId");
            return (Criteria) this;
        }

        public Criteria andEIdBetween(Integer value1, Integer value2) {
            addCriterion("e_id between", value1, value2, "eId");
            return (Criteria) this;
        }

        public Criteria andEIdNotBetween(Integer value1, Integer value2) {
            addCriterion("e_id not between", value1, value2, "eId");
            return (Criteria) this;
        }

        public Criteria andEDisplacementIsNull() {
            addCriterion("e_displacement is null");
            return (Criteria) this;
        }

        public Criteria andEDisplacementIsNotNull() {
            addCriterion("e_displacement is not null");
            return (Criteria) this;
        }

        public Criteria andEDisplacementEqualTo(BigDecimal value) {
            addCriterion("e_displacement =", value, "eDisplacement");
            return (Criteria) this;
        }

        public Criteria andEDisplacementNotEqualTo(BigDecimal value) {
            addCriterion("e_displacement <>", value, "eDisplacement");
            return (Criteria) this;
        }

        public Criteria andEDisplacementGreaterThan(BigDecimal value) {
            addCriterion("e_displacement >", value, "eDisplacement");
            return (Criteria) this;
        }

        public Criteria andEDisplacementGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("e_displacement >=", value, "eDisplacement");
            return (Criteria) this;
        }

        public Criteria andEDisplacementLessThan(BigDecimal value) {
            addCriterion("e_displacement <", value, "eDisplacement");
            return (Criteria) this;
        }

        public Criteria andEDisplacementLessThanOrEqualTo(BigDecimal value) {
            addCriterion("e_displacement <=", value, "eDisplacement");
            return (Criteria) this;
        }

        public Criteria andEDisplacementIn(List<BigDecimal> values) {
            addCriterion("e_displacement in", values, "eDisplacement");
            return (Criteria) this;
        }

        public Criteria andEDisplacementNotIn(List<BigDecimal> values) {
            addCriterion("e_displacement not in", values, "eDisplacement");
            return (Criteria) this;
        }

        public Criteria andEDisplacementBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("e_displacement between", value1, value2, "eDisplacement");
            return (Criteria) this;
        }

        public Criteria andEDisplacementNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("e_displacement not between", value1, value2, "eDisplacement");
            return (Criteria) this;
        }

        public Criteria andEInletIsNull() {
            addCriterion("e_inlet is null");
            return (Criteria) this;
        }

        public Criteria andEInletIsNotNull() {
            addCriterion("e_inlet is not null");
            return (Criteria) this;
        }

        public Criteria andEInletEqualTo(String value) {
            addCriterion("e_inlet =", value, "eInlet");
            return (Criteria) this;
        }

        public Criteria andEInletNotEqualTo(String value) {
            addCriterion("e_inlet <>", value, "eInlet");
            return (Criteria) this;
        }

        public Criteria andEInletGreaterThan(String value) {
            addCriterion("e_inlet >", value, "eInlet");
            return (Criteria) this;
        }

        public Criteria andEInletGreaterThanOrEqualTo(String value) {
            addCriterion("e_inlet >=", value, "eInlet");
            return (Criteria) this;
        }

        public Criteria andEInletLessThan(String value) {
            addCriterion("e_inlet <", value, "eInlet");
            return (Criteria) this;
        }

        public Criteria andEInletLessThanOrEqualTo(String value) {
            addCriterion("e_inlet <=", value, "eInlet");
            return (Criteria) this;
        }

        public Criteria andEInletLike(String value) {
            addCriterion("e_inlet like", value, "eInlet");
            return (Criteria) this;
        }

        public Criteria andEInletNotLike(String value) {
            addCriterion("e_inlet not like", value, "eInlet");
            return (Criteria) this;
        }

        public Criteria andEInletIn(List<String> values) {
            addCriterion("e_inlet in", values, "eInlet");
            return (Criteria) this;
        }

        public Criteria andEInletNotIn(List<String> values) {
            addCriterion("e_inlet not in", values, "eInlet");
            return (Criteria) this;
        }

        public Criteria andEInletBetween(String value1, String value2) {
            addCriterion("e_inlet between", value1, value2, "eInlet");
            return (Criteria) this;
        }

        public Criteria andEInletNotBetween(String value1, String value2) {
            addCriterion("e_inlet not between", value1, value2, "eInlet");
            return (Criteria) this;
        }

        public Criteria andECtypeIsNull() {
            addCriterion("e_ctype is null");
            return (Criteria) this;
        }

        public Criteria andECtypeIsNotNull() {
            addCriterion("e_ctype is not null");
            return (Criteria) this;
        }

        public Criteria andECtypeEqualTo(String value) {
            addCriterion("e_ctype =", value, "eCtype");
            return (Criteria) this;
        }

        public Criteria andECtypeNotEqualTo(String value) {
            addCriterion("e_ctype <>", value, "eCtype");
            return (Criteria) this;
        }

        public Criteria andECtypeGreaterThan(String value) {
            addCriterion("e_ctype >", value, "eCtype");
            return (Criteria) this;
        }

        public Criteria andECtypeGreaterThanOrEqualTo(String value) {
            addCriterion("e_ctype >=", value, "eCtype");
            return (Criteria) this;
        }

        public Criteria andECtypeLessThan(String value) {
            addCriterion("e_ctype <", value, "eCtype");
            return (Criteria) this;
        }

        public Criteria andECtypeLessThanOrEqualTo(String value) {
            addCriterion("e_ctype <=", value, "eCtype");
            return (Criteria) this;
        }

        public Criteria andECtypeLike(String value) {
            addCriterion("e_ctype like", value, "eCtype");
            return (Criteria) this;
        }

        public Criteria andECtypeNotLike(String value) {
            addCriterion("e_ctype not like", value, "eCtype");
            return (Criteria) this;
        }

        public Criteria andECtypeIn(List<String> values) {
            addCriterion("e_ctype in", values, "eCtype");
            return (Criteria) this;
        }

        public Criteria andECtypeNotIn(List<String> values) {
            addCriterion("e_ctype not in", values, "eCtype");
            return (Criteria) this;
        }

        public Criteria andECtypeBetween(String value1, String value2) {
            addCriterion("e_ctype between", value1, value2, "eCtype");
            return (Criteria) this;
        }

        public Criteria andECtypeNotBetween(String value1, String value2) {
            addCriterion("e_ctype not between", value1, value2, "eCtype");
            return (Criteria) this;
        }

        public Criteria andECnumIsNull() {
            addCriterion("e_cnum is null");
            return (Criteria) this;
        }

        public Criteria andECnumIsNotNull() {
            addCriterion("e_cnum is not null");
            return (Criteria) this;
        }

        public Criteria andECnumEqualTo(Integer value) {
            addCriterion("e_cnum =", value, "eCnum");
            return (Criteria) this;
        }

        public Criteria andECnumNotEqualTo(Integer value) {
            addCriterion("e_cnum <>", value, "eCnum");
            return (Criteria) this;
        }

        public Criteria andECnumGreaterThan(Integer value) {
            addCriterion("e_cnum >", value, "eCnum");
            return (Criteria) this;
        }

        public Criteria andECnumGreaterThanOrEqualTo(Integer value) {
            addCriterion("e_cnum >=", value, "eCnum");
            return (Criteria) this;
        }

        public Criteria andECnumLessThan(Integer value) {
            addCriterion("e_cnum <", value, "eCnum");
            return (Criteria) this;
        }

        public Criteria andECnumLessThanOrEqualTo(Integer value) {
            addCriterion("e_cnum <=", value, "eCnum");
            return (Criteria) this;
        }

        public Criteria andECnumIn(List<Integer> values) {
            addCriterion("e_cnum in", values, "eCnum");
            return (Criteria) this;
        }

        public Criteria andECnumNotIn(List<Integer> values) {
            addCriterion("e_cnum not in", values, "eCnum");
            return (Criteria) this;
        }

        public Criteria andECnumBetween(Integer value1, Integer value2) {
            addCriterion("e_cnum between", value1, value2, "eCnum");
            return (Criteria) this;
        }

        public Criteria andECnumNotBetween(Integer value1, Integer value2) {
            addCriterion("e_cnum not between", value1, value2, "eCnum");
            return (Criteria) this;
        }

        public Criteria andStatusIsNull() {
            addCriterion("status is null");
            return (Criteria) this;
        }

        public Criteria andStatusIsNotNull() {
            addCriterion("status is not null");
            return (Criteria) this;
        }

        public Criteria andStatusEqualTo(Integer value) {
            addCriterion("status =", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusNotEqualTo(Integer value) {
            addCriterion("status <>", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusGreaterThan(Integer value) {
            addCriterion("status >", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusGreaterThanOrEqualTo(Integer value) {
            addCriterion("status >=", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusLessThan(Integer value) {
            addCriterion("status <", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusLessThanOrEqualTo(Integer value) {
            addCriterion("status <=", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusIn(List<Integer> values) {
            addCriterion("status in", values, "status");
            return (Criteria) this;
        }

        public Criteria andStatusNotIn(List<Integer> values) {
            addCriterion("status not in", values, "status");
            return (Criteria) this;
        }

        public Criteria andStatusBetween(Integer value1, Integer value2) {
            addCriterion("status between", value1, value2, "status");
            return (Criteria) this;
        }

        public Criteria andStatusNotBetween(Integer value1, Integer value2) {
            addCriterion("status not between", value1, value2, "status");
            return (Criteria) this;
        }

        public Criteria andEMaterialIsNull() {
            addCriterion("e_material is null");
            return (Criteria) this;
        }

        public Criteria andEMaterialIsNotNull() {
            addCriterion("e_material is not null");
            return (Criteria) this;
        }

        public Criteria andEMaterialEqualTo(String value) {
            addCriterion("e_material =", value, "eMaterial");
            return (Criteria) this;
        }

        public Criteria andEMaterialNotEqualTo(String value) {
            addCriterion("e_material <>", value, "eMaterial");
            return (Criteria) this;
        }

        public Criteria andEMaterialGreaterThan(String value) {
            addCriterion("e_material >", value, "eMaterial");
            return (Criteria) this;
        }

        public Criteria andEMaterialGreaterThanOrEqualTo(String value) {
            addCriterion("e_material >=", value, "eMaterial");
            return (Criteria) this;
        }

        public Criteria andEMaterialLessThan(String value) {
            addCriterion("e_material <", value, "eMaterial");
            return (Criteria) this;
        }

        public Criteria andEMaterialLessThanOrEqualTo(String value) {
            addCriterion("e_material <=", value, "eMaterial");
            return (Criteria) this;
        }

        public Criteria andEMaterialLike(String value) {
            addCriterion("e_material like", value, "eMaterial");
            return (Criteria) this;
        }

        public Criteria andEMaterialNotLike(String value) {
            addCriterion("e_material not like", value, "eMaterial");
            return (Criteria) this;
        }

        public Criteria andEMaterialIn(List<String> values) {
            addCriterion("e_material in", values, "eMaterial");
            return (Criteria) this;
        }

        public Criteria andEMaterialNotIn(List<String> values) {
            addCriterion("e_material not in", values, "eMaterial");
            return (Criteria) this;
        }

        public Criteria andEMaterialBetween(String value1, String value2) {
            addCriterion("e_material between", value1, value2, "eMaterial");
            return (Criteria) this;
        }

        public Criteria andEMaterialNotBetween(String value1, String value2) {
            addCriterion("e_material not between", value1, value2, "eMaterial");
            return (Criteria) this;
        }

        public Criteria andFuelIsNull() {
            addCriterion("Fuel is null");
            return (Criteria) this;
        }

        public Criteria andFuelIsNotNull() {
            addCriterion("Fuel is not null");
            return (Criteria) this;
        }

        public Criteria andFuelEqualTo(String value) {
            addCriterion("Fuel =", value, "fuel");
            return (Criteria) this;
        }

        public Criteria andFuelNotEqualTo(String value) {
            addCriterion("Fuel <>", value, "fuel");
            return (Criteria) this;
        }

        public Criteria andFuelGreaterThan(String value) {
            addCriterion("Fuel >", value, "fuel");
            return (Criteria) this;
        }

        public Criteria andFuelGreaterThanOrEqualTo(String value) {
            addCriterion("Fuel >=", value, "fuel");
            return (Criteria) this;
        }

        public Criteria andFuelLessThan(String value) {
            addCriterion("Fuel <", value, "fuel");
            return (Criteria) this;
        }

        public Criteria andFuelLessThanOrEqualTo(String value) {
            addCriterion("Fuel <=", value, "fuel");
            return (Criteria) this;
        }

        public Criteria andFuelLike(String value) {
            addCriterion("Fuel like", value, "fuel");
            return (Criteria) this;
        }

        public Criteria andFuelNotLike(String value) {
            addCriterion("Fuel not like", value, "fuel");
            return (Criteria) this;
        }

        public Criteria andFuelIn(List<String> values) {
            addCriterion("Fuel in", values, "fuel");
            return (Criteria) this;
        }

        public Criteria andFuelNotIn(List<String> values) {
            addCriterion("Fuel not in", values, "fuel");
            return (Criteria) this;
        }

        public Criteria andFuelBetween(String value1, String value2) {
            addCriterion("Fuel between", value1, value2, "fuel");
            return (Criteria) this;
        }

        public Criteria andFuelNotBetween(String value1, String value2) {
            addCriterion("Fuel not between", value1, value2, "fuel");
            return (Criteria) this;
        }

        public Criteria andEOilsupplyIsNull() {
            addCriterion("e_oilsupply is null");
            return (Criteria) this;
        }

        public Criteria andEOilsupplyIsNotNull() {
            addCriterion("e_oilsupply is not null");
            return (Criteria) this;
        }

        public Criteria andEOilsupplyEqualTo(String value) {
            addCriterion("e_oilsupply =", value, "eOilsupply");
            return (Criteria) this;
        }

        public Criteria andEOilsupplyNotEqualTo(String value) {
            addCriterion("e_oilsupply <>", value, "eOilsupply");
            return (Criteria) this;
        }

        public Criteria andEOilsupplyGreaterThan(String value) {
            addCriterion("e_oilsupply >", value, "eOilsupply");
            return (Criteria) this;
        }

        public Criteria andEOilsupplyGreaterThanOrEqualTo(String value) {
            addCriterion("e_oilsupply >=", value, "eOilsupply");
            return (Criteria) this;
        }

        public Criteria andEOilsupplyLessThan(String value) {
            addCriterion("e_oilsupply <", value, "eOilsupply");
            return (Criteria) this;
        }

        public Criteria andEOilsupplyLessThanOrEqualTo(String value) {
            addCriterion("e_oilsupply <=", value, "eOilsupply");
            return (Criteria) this;
        }

        public Criteria andEOilsupplyLike(String value) {
            addCriterion("e_oilsupply like", value, "eOilsupply");
            return (Criteria) this;
        }

        public Criteria andEOilsupplyNotLike(String value) {
            addCriterion("e_oilsupply not like", value, "eOilsupply");
            return (Criteria) this;
        }

        public Criteria andEOilsupplyIn(List<String> values) {
            addCriterion("e_oilsupply in", values, "eOilsupply");
            return (Criteria) this;
        }

        public Criteria andEOilsupplyNotIn(List<String> values) {
            addCriterion("e_oilsupply not in", values, "eOilsupply");
            return (Criteria) this;
        }

        public Criteria andEOilsupplyBetween(String value1, String value2) {
            addCriterion("e_oilsupply between", value1, value2, "eOilsupply");
            return (Criteria) this;
        }

        public Criteria andEOilsupplyNotBetween(String value1, String value2) {
            addCriterion("e_oilsupply not between", value1, value2, "eOilsupply");
            return (Criteria) this;
        }

        public Criteria andEnvironmentalIsNull() {
            addCriterion("environmental is null");
            return (Criteria) this;
        }

        public Criteria andEnvironmentalIsNotNull() {
            addCriterion("environmental is not null");
            return (Criteria) this;
        }

        public Criteria andEnvironmentalEqualTo(String value) {
            addCriterion("environmental =", value, "environmental");
            return (Criteria) this;
        }

        public Criteria andEnvironmentalNotEqualTo(String value) {
            addCriterion("environmental <>", value, "environmental");
            return (Criteria) this;
        }

        public Criteria andEnvironmentalGreaterThan(String value) {
            addCriterion("environmental >", value, "environmental");
            return (Criteria) this;
        }

        public Criteria andEnvironmentalGreaterThanOrEqualTo(String value) {
            addCriterion("environmental >=", value, "environmental");
            return (Criteria) this;
        }

        public Criteria andEnvironmentalLessThan(String value) {
            addCriterion("environmental <", value, "environmental");
            return (Criteria) this;
        }

        public Criteria andEnvironmentalLessThanOrEqualTo(String value) {
            addCriterion("environmental <=", value, "environmental");
            return (Criteria) this;
        }

        public Criteria andEnvironmentalLike(String value) {
            addCriterion("environmental like", value, "environmental");
            return (Criteria) this;
        }

        public Criteria andEnvironmentalNotLike(String value) {
            addCriterion("environmental not like", value, "environmental");
            return (Criteria) this;
        }

        public Criteria andEnvironmentalIn(List<String> values) {
            addCriterion("environmental in", values, "environmental");
            return (Criteria) this;
        }

        public Criteria andEnvironmentalNotIn(List<String> values) {
            addCriterion("environmental not in", values, "environmental");
            return (Criteria) this;
        }

        public Criteria andEnvironmentalBetween(String value1, String value2) {
            addCriterion("environmental between", value1, value2, "environmental");
            return (Criteria) this;
        }

        public Criteria andEnvironmentalNotBetween(String value1, String value2) {
            addCriterion("environmental not between", value1, value2, "environmental");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}